Я есть проблемы с локалью.
Код: Выделить всё
atofЯ пытался установить экспорт терминала LC_ALL=C и добавить сам собственный код.
Код: Выделить всё
#include
setlocale(LC_ALL, "C");
Моя ОС — Linux (Ubuntu).
Для воспроизведения:
Код: Выделить всё
val l = Linker.nativeLinker()
val d = FunctionDescriptor.of(ValueLayout.JAVA_DOUBLE, ValueLayout.ADDRESS)
val atof = l.downcallHandle(l.defaultLookup().find("atof").get(), d)
val res = atof.invoke(Arena.global().allocateFrom("2.2598258677677969")) as Double
println(res)
Код: Выделить всё
auto a = setlocale(LC_ALL, NULL);
utils::logmesg(this, "old locale {}\n", a);
старую локаль LC_CTYPE=en_US.UTF-8;LC_NUMERIC=it_IT.UTF-8; LC_TIME=it_IT.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=it_IT.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=it_IT.UTF-8;LC_NAME=it_IT.UTF-8;LC_ADDRESS= it_IT.UTF-8;LC_TELEPHONE=it_IT.UTF-8;LC_MEASUREMENT=it_IT.UTF-8;LC_IDENTIFICATION=it_IT.UTF-8
Код: Выделить всё
locale -aC.utf8
POSIX
de_AT.utf8
de_BE.utf8de_CH.utf8
de_DE.utf8
de_IT.utf8
de_LI.utf8
de_LU.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG .utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
it_CH.utf8
it_IT.utf8< /p>
Подробнее здесь: https://stackoverflow.com/questions/787 ... ith-locale
Мобильная версия