|
Преобразование данных
|
|||
---|---|---|---|
#18+
Здравствуйте! Если запустить такой код Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Value STR_15_3 STR_15_8 NVARCHAR(Max) DECIMAL_15_3 DECIMAL_15_8201.7445 201.745 201.74450684 201.745 201.745 201.7445068423.60291 23.603 23.60290909 23.6029 23.603 23.60290909178.1416 178.142 178.14160156 178.142 178.142 178.14160156286376.8 286376.813 286376.81250000 286377 286376.813 286376.81250000218775.3 218775.297 218775.29687500 218775 218775.297 218775.2968750067601.47 67601.469 67601.46875000 67601.5 67601.469 67601.4687500010 10.000 10.00000000 10 10.000 10.0000000010 10.000 10.00000000 10 10.000 10.0000000010 10.000 10.00000000 10 10.000 10.00000000-1 -1.000 -1.00000000 -1 -1.000 -1.00000000-1.2 -1.200 -1.20000005 -1.2 -1.200 -1.20000005-1.02 -1.020 -1.01999998 -1.02 -1.020 -1.01999998-201.7445 -201.745 -201.74450684 -201.745 -201.745 -201.744506840 0.000 0.00000000 0 0.000 0.00000000NULL NULL NULL NULL NULL NULL 1. При преобразовании в NVARCHAR(Max), то во многих строках строках срезает правый крайний символ и округляет предпоследний. Как сделать так, чтобы не срезал и не округлял? 2. Из справки SQL: "По умолчанию SQL Server использует округление с потерей точности и масштаба при преобразовании числа в значение decimal или numeric". Аналогично для STR. Возможно задать, чтобы не округлял? 3. Как и для STR, так и для DECIMAL, если указать 8 символов после запятой, то появляются какие то цифры, которые нет в исходнике. Почему так? И как это предотвратить? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 19:45 |
|
Преобразование данных
|
|||
---|---|---|---|
#18+
Вариантов ажно 2: 1. Изучить и понять устройство REAL/FLOAT. И не задавать глупых вопросов. 2. Считать в целых числах (DECIMAL). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 06:27 |
|
Преобразование данных
|
|||
---|---|---|---|
#18+
Чтобы при преобразовании данных не терялась точность (не срезались и появлялись лишние цифры), написал пока так. Код пока еще не оптимальный. Код: sql 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
Value DECIMAL201.7445 201.744500023.60291 23.6029100178.1416 178.1416000286376.8 286376.8000000218775.3 218775.300000067601.47 67601.470000010 10.000000010 10.000000010 10.0000000-1 -1.0000000-1.2 -1.2000000-1.02 -1.0200000-201.7445 -201.74450000 0.0000000NULL NULL0.0001 0.0001000-0.0001 -0.00010001E-10 0.0000000-1E-10 0.0000000 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2022, 11:27 |
|
|
start [/forum/topic.php?fid=46&fpage=5&tid=1683927]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 182ms |
0 / 0 |