Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改sprintf()中的十进制字符_R_Printf - Fatal编程技术网

更改sprintf()中的十进制字符

更改sprintf()中的十进制字符,r,printf,R,Printf,我可以使用以下命令更改输出中的十进制字符: > 1/2 [1] 0.5 > options(OutDec = ',') > 1/2 [1] 0,5 但是,此更改不会影响sprintf()函数 > sprintf('%.1f', 1/2) [1] "0.5" 所以,我的问题是:有一个简单的方法来改变它(十进制字符)?我认为我不能使用“简单”的RE,因为不是每个都需要,交易 我不知道怎么做,所以我不能说我已经做了什么。我想你可以通过适当地设置你的区域设置来做到这一点,确保

我可以使用以下命令更改输出中的十进制字符:

> 1/2
[1] 0.5
> options(OutDec = ',')
> 1/2
[1] 0,5
但是,此更改不会影响
sprintf()
函数

> sprintf('%.1f', 1/2)
[1] "0.5"
所以,我的问题是:有一个简单的方法来改变它(十进制字符)?我认为我不能使用“简单”的RE,因为不是每个
都需要
交易


我不知道怎么做,所以我不能说我已经做了什么。

我想你可以通过适当地设置你的区域设置来做到这一点,确保
LC\u NUMERIC
组件被设置为使用逗号作为十进制分隔符的区域设置()


这发出了一个警告,R的行为可能会异常;生成输出后,您可能希望将
LC\u NUMERIC
切换回C

也许??将系统区域设置(
Sys.setlocale
)更改为使用逗号作为十进制分隔符的区域设置?我已经使用逗号作为十进制数(Sys.getlocale()
“LC_COLLATE=葡萄牙语_巴西.1252;LC_CTYPE=葡萄牙语_巴西.1252;LC_MONETARY=葡萄牙语_巴西.1252;LC_NUMERIC=C;LC_TIME=葡萄牙语_巴西.1252”
)。我想你的问题是你有
LC_NUMERIC=C
<代码>系统设置语言环境(“LC_NUMERIC”,“es_es.utf8”);sprintf(“%f”,1.5)为我提供了
“1500000”
(还有一个警告,R可能会表现得很奇怪;您可能想在生成输出后立即将
LC\u NUMERIC
切换回
C
)。我在Sys.setlocale中的
2:In Sys.setlocale(“LC\u NUMERIC”,“es\es.utf8”):操作系统报告无法执行将区域设置设置为“es_es.utf8”的请求
。。。我尝试将
es
更改为
pt
,但给出了您可能需要的相同错误消息
葡萄牙语(巴西)。1252
(我总是很难弄清楚我的计算机上有哪些可用的语言环境;在unix上,
locale-a
这样做了:可能仍然没有在这里工作……不知道为什么,与我的朋友一起工作过:/但是现在我知道我需要做什么了!谢谢!
Sys.setlocale("LC_NUMERIC","es_ES.utf8")
sprintf("%f",1.5)  
## "1,500000"