Работа с число, имащо хем запетая, хем точка в него
Работа с число, имащо хем запетая, хем точка в него
Здравейте.
Наложи ми се да запиша числото „1,546.0“ в базата данни така, както е, обаче то реално се записа като 1… Въпроса ми е как да запиша цялото число, както си е — 1,546.0? Полето, в което се записва то е INT, но като го направя примерно VARCHAR или просто TEXT, пак си се записва като единица.
Наложи ми се да запиша числото „1,546.0“ в базата данни така, както е, обаче то реално се записа като 1… Въпроса ми е как да запиша цялото число, както си е — 1,546.0? Полето, в което се записва то е INT, но като го направя примерно VARCHAR или просто TEXT, пак си се записва като единица.
Числото идва от тук (hoursOnRecord по-конкретно). Не го променям с никаква функция — добавям го към базата данни така, както ми е предоставено „уж“. Предоставя ми се като 1,546.0, но пък се добавя като единица.Radko wrote:Промени полето в БДто на varchar и си провери като го взимаш в скрипта ти как го взимаш, да не би там да го правиш int.
Я все пак дай частта от кода където го взимаш от хмл-а и заявката за инсерт.Illusion wrote:Числото идва от тук (hoursOnRecord по-конкретно). Не го променям с никаква функция — добавям го към базата данни така, както ми е предоставено „уж“. Предоставя ми се като 1,546.0, но пък се добавя като единица.Radko wrote:Промени полето в БДто на varchar и си провери като го взимаш в скрипта ти как го взимаш, да не би там да го правиш int.
- IzKuFeLiQqQqQ
- Много Редовен
- Posts: 1667
- Joined: Sun Jun 28, 2009 1:24 pm
- Contact:
- StormBreaker
- Шаман
- Posts: 5210
- Joined: Mon Mar 05, 2007 8:08 pm
Така е. Но това не променя факта че някъде се губят и запетайката и точката и записва само единицата.StormBreaker wrote:Според мен е добре да махне запетаята и да си запише числото като число.Radko wrote:Не, защото числото не е нито дабъл нито флоат има и точка и запетайка. Трябва да е или варчар или текст
Според мен е в скрипта, затова нека автора го даде да хвърлим един поглед.
Записва го като 1 само защото:Radko wrote:Така е. Но това не променя факта че някъде се губят и запетайката и точката и записва само единицата.StormBreaker wrote:Според мен е добре да махне запетаята и да си запише числото като число.Radko wrote:Не, защото числото не е нито дабъл нито флоат има и точка и запетайка. Трябва да е или варчар или текст
Според мен е в скрипта, затова нека автора го даде да хвърлим един поглед.
1. Tипа на полето е INTEGER.
2. Запетайката не е разделител.
Най адекватното решение би било да се премахне напълно запетайката и типа на полето да се смени на FLOAT/DOUBLE.
В случая 1,546.0 ще бъде 1546.0 и ще са абсолютно еднакви в контекста.