|
|
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Всем привет, возникла задача посчитать количество цифр в числе, есть код, который нужно упростить оставив лишь один цикл WHILE, очень нужна помощь. Вот код, который нужно упростить: DECLARE @num int, @cnt int SET @num = 19 IF (@num = 0) SET @cnt = 1 ELSE BEGIN SET @cnt = 0 WHILE (@num <> 0) BEGIN SET @cnt = @cnt + 1 SET @num = @num / 10 END END SELECT @cnt AS 'Количество цифр'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2018, 18:06 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
SLDS, во-первых, задайте вопрос в правильной ветке форума. Ваш код больно уж на T-SQL похож (MS SQL Server ?) во-вторых, встроенные функции len / datalength в T-SQL отменили, что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2018, 18:15 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, datalen, судя по названию, для int должна вернуть 4. А len может посчитать не только цифры, что легко учесть. Для целого положительного можно еще математикой средней школы воспользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2018, 18:43 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
SLDSесть код, который нужно упростить оставив лишь один цикл WHILE Его можно упростить выкинув цикл WHILE вообще. ДЕсятичный логарифм тебе в руки. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2018, 19:48 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. При необходимости, использовать форматную маску и nlsparam, а также отсеять знак "минус" и десятичнку точку/запятую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 10:44 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
mcwhiteи десятичнку точку/запятую.А сколько цифр в 1/3 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 11:27 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
SLDS...есть код, который нужно упростить оставив лишь один цикл WHILE... Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 14:03 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Да ну, Не проще ли было начать с 1. Тогда и проходов цикла нужно меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 14:41 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Да ну, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 15:09 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Stax, Ты уверен, что знаешь, как работает целочисленное деление в mssql и присвоение в oracle, чтобы сравнивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 15:19 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
-2-, Код: sql 1. я добавил для случая num=0, тем самым избавившись от if/else, чего, собственно, и просил ТС. Варианта проще в голову не пришло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 15:51 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 17:48 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
orawish, Не забываем про: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Ну и "число" это не тип данных. Так-что для, например, float этот метод не сработает eсли экспонента < -39: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 22:13 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
SYНу и "число" это не тип данных.Придираться, так по полной. С точки зрения программирования, в числах нет цифр. Цифры есть в том или ином его представлении: простые дроби (элик), экспоненциальная запись, троичное кодирование, римская или кириллическая система счисления (кто тут цифры?),... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 22:48 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
-2-(кто тут цифры?),...Всё сущее есть число. (c) :) SYeсли экспонента < -39 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 08:16 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 16:59 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
SY1.0E+000А зеленая рожа отчего? В приведенном числе Е нужно было за цифру посчитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 18:09 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
-2-SY1.0E+000А зеленая рожа отчего? В приведенном числе Е нужно было за цифру посчитать? А знаки порядка принято считать за знаки мантиссы? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 19:37 |
|
||
|
Посчитать количество цифр в числе
|
|||
|---|---|---|---|
|
#18+
-2-А зеленая рожа отчего? В приведенном числе Е нужно было за цифру посчитать? andrey_anonymousА знаки порядка принято считать за знаки мантиссы? :) К тому что "число" это не тип данных. Число то же а его представлeние разное и соответственно разное кoличество цифр. А складывать кoличество цифр мантиссы c кoличеством цифр экспоненты без учета знака экспоненты как-то не укладывается в моей голoве. Ну и самое главное не зaбываем как хранятся binary_float: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Тут считай E за цифру или знаки порядка за знаки мантиссы а 12 не получится :). SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2018, 21:00 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39738824&tid=1883119]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 386ms |

| 0 / 0 |
