回答
既然你不想QLocale也许你可以做一个简单的转换(与QString的::号码,例如),然后再把更换所需的字符。
很可怕的,但得到了这份工作做
double doubleNumber = 5234556.3545;
int precision = 2;
QString stringNumber = QString::number(doubleNumber, 'f', precision);
for(int point = 0, i = (stringNumber.lastIndexOf('.') == -1 ? stringNumber.length() : stringNumber.lastIndexOf('.')); i > 0; --i, ++point)
{
if(point != 0 && point % 3 == 0)
{
stringNumber.insert(i, ',');
}
}
Qt不支持自定义语言环境。但是,面对的只有组和小数点字符很简单:
BTW,spbots'问题不无关系。有关目标的更多细节总是有所帮助,它可能会导致不同的方法,可能会更好地为您服务。
这里是你如何做到这一点只使用的std :: LIB(无QT)。定义您自己的numpunct派生类,它可以指定小数点,分组字符,甚至是分组之间的间距。使用包含您的方面的区域设置ostringstream。根据需要在该ostringstream上设置标志。输出到它并从中获取字符串。
#include <locale>
#include <sstream>
#include <iostream>
class my_punct
: public std::numpunct<char>
{
protected:
virtual char do_decimal_point() const {return ',';}
virtual char do_thousands_sep() const {return '.';}
virtual std::string do_grouping() const {return std::string("\2\3");}
};
int main()
{
std::ostringstream os;
os.imbue(std::locale(os.getloc(), new my_punct));
os.precision(2);
fixed(os);
double x = 123456789.12;
os << x;
std::string s = os.str();
std::cout << s << '\n';
}
1.234.567.89,12
为QML用户:
function thousandSeparator(input){
return input.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
}
尽管这段代码可能有助于解决问题,但 提供了关于_why_和/或_how_的其他上下文,回答这个问题将显着提高其长期价值。请[编辑]你的答案,添加一些 的解释。 –
答案对我来说是完全适合的。谢谢! – rsp1984
- 1. Fortran小数点和千位分隔符
- 2. 小数千分隔符和小数点
- 3. 千分隔符自定义位置
- 4. RDLC自定义千位分隔符?
- 5. 修改小数点和千位分隔符不改变小数
- 6. Jquery验证和掩码为小数点和千位分隔符
- 7. 验证小数用小数点分隔符和千个分隔符
- 8. 如何设置千位分隔符的小数点后两位?
- 9. 如何为mdx查询指定千位和小数分隔符?
- 10. TemplateField小数位数和千位分隔符
- 11. 千位分隔符与数据绑定
- 12. 更改绑定中的默认千位和小数点分隔符
- 13. 带有千位分隔符和强制小数位的String.Format小数位
- 14. 如何设置自定义千位分隔符?
- 15. 添加千位分隔符,自动(SWIFT)
- 16. 千位分隔符在Python
- 17. QSpinBox千位分隔符
- 18. 千位分隔符printf
- 19. 添加千位分隔符
- 20. 格式千位分隔符
- 21. Apache poi - 千位分隔符
- 22. MYSQL - 千位分隔符
- 23. 千位分隔符剃刀MVC和JS
- 24. 在输入类型编号中添加千位和小数点分隔符
- 25. 使用逗号作为小数点分隔符和无千位分隔符的格式
- 26. 千位分隔符的数字格式
- 27. AngularJS:货币格式。更改分数大小,千分位分隔符和分数分隔符
- 28. 如果用户自定义小数点分隔符
- 29. 如何指定由GWT的NumberFormat使用的千位和小数分隔符
- 30. 指定自定义千位分隔符是独立于文化的
我不禁问 - 为什么有必要使用自定义分隔符?你是否解析一个列表并被迫使用小数(或句号)作为分隔符? – spbots
由于它是数学应用程序客户端需要选项来指定自定义小数点和千位分隔符字符。为什么这些不相关的问题...... –