有没有办法使用DecimalFormat(或其他一些标准格式化程序)来格式化这样的数字:
1,000,000 => 1.00M
1,234,567 => 1.23M
1,234,567,890 => 1234.57M
基本上将一些数字除以1百万,保留2位小数,并在末尾打一个"M".我已经考虑过创建一个新的NumberFormat子类,但它看起来比我想象的要复杂.
我正在编写一个API,其格式方法如下所示:
public String format(double value, Unit unit); // Unit is an enum
Run Code Online (Sandbox Code Playgroud)
在内部,我将Unit对象映射到NumberFormatters.实现是这样的:
public String format(double value, Unit unit)
{
NumberFormatter formatter = formatters.get(unit);
return formatter.format(value);
}
Run Code Online (Sandbox Code Playgroud)
请注意,因为这个,我不能指望客户端除以100万,我不能只使用String.format()而不将它包装在NumberFormatter中.
我收到错误:
Warning: invalid value encountered in log
Run Code Online (Sandbox Code Playgroud)
从Python和我相信错误是由numpy(使用版本1.5.0)引发的.但是,由于我在几个地方调用"日志"功能,我不确定错误来自哪里.有没有办法让numpy打印产生此错误的行号?
我假设警告是由一个小的数字的对数引起的,该数字小到可以舍入到0或更小(负).是对的吗?这些警告的通常来源是什么?
我正在寻找一个函数,可以将数字字符串转换为整数或浮点类型,具体取决于字符串的内容,例如"1.23" - > float 1.23,"123" - > int 123.
我知道我可以将if-s与is_int,is_float一起使用并转换为适当的类型 - 但也许有一个函数会自动执行它?
我有一个Dataframe带有strings. 如何检查其中的哪些行是数字。我在 PySpark 的官方文档中找不到任何功能-
values = [('25q36',),('75647',),('13864',),('8758K',),('07645',)]
df = sqlContext.createDataFrame(values,['ID',])
df.show()
+-----+
| ID|
+-----+
|25q36|
|75647|
|13864|
|8758K|
|07645|
+-----+
Run Code Online (Sandbox Code Playgroud)
在 Python 中,有一个函数.isDigit()可以返回True或者False是否string只包含数字。
预期数据帧 -
+-----+-------+
| ID| Value |
+-----+-------+
|25q36| False |
|75647| True |
|13864| True |
|8758K| False |
|07645| True |
+-----+-------+
Run Code Online (Sandbox Code Playgroud)
我想避免创建一个UDF.
我需要能够看到PHP中的表单输入是否为数字.如果它不是数字,则网站应重定向.我尝试过is_numeric()但它似乎不起作用.
代码示例会很好.
我正在开发一个接受数量整数值的购物车.我在尝试这个:
if(!is_numeric($quantity)){
//redirect($data['referurl']."/badinput");
echo "is not numeric";
}
Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个WPF应用程序,我想拥有一个TextBox只能包含数字条目的应用程序.我知道当我丢失焦点并阻止内容为数字时我可以验证它的内容,但在其他Windows窗体应用程序中,我们使用完全阻止除了数字之外的任何输入被写下来.另外,我们使用这个代码放在一个单独的dll中,以便在很多地方引用它.
以下是2008年不使用WPF的代码:
Public Shared Sub BloquerInt(ByRef e As System.Windows.Forms.KeyPressEventArgs, ByRef oTxt As Windows.Forms.TextBox, ByVal intlongueur As Integer)
Dim intLongueurSelect As Integer = oTxt.SelectionLength
Dim intPosCurseur As Integer = oTxt.SelectionStart
Dim strValeurTxtBox As String = oTxt.Text.Substring(0, intPosCurseur) & oTxt.Text.Substring(intPosCurseur + intLongueurSelect, oTxt.Text.Length - intPosCurseur - intLongueurSelect)
If IsNumeric(e.KeyChar) OrElse _
Microsoft.VisualBasic.Asc(e.KeyChar) = System.Windows.Forms.Keys.Back Then
If Microsoft.VisualBasic.AscW(e.KeyChar) = System.Windows.Forms.Keys.Back Then
e.Handled = False
ElseIf strValeurTxtBox.Length < intlongueur Then
e.Handled = False
Else
e.Handled = True
End If
Else
e.Handled = …Run Code Online (Sandbox Code Playgroud) 如何在java swing中创建一个数字文本框,它有两个按钮(向上和向下),分别增加和减少文本框中的值.此文本框也必须只能使用NUMLYIC VALUES进行编辑.像这样的东西

我尝试在文本框附近放置两个按钮,然后在按钮单击时手动执行操作.

有没有其他方法可以让我以更好的方式做到这一点,并获得与第一张图像类似的结果.
谢谢 :)
我有一个JSpinner的,可以从改变minimum到maximum的步骤0.1.这工作得非常好.现在,我设置编辑器,JSpinner因为NumberEditor用户可以编辑文本框,我只想要数字值.这也是有用的,也就是用户可以输入的任何内容,编辑器在我使用值时只给出编辑器中的数字mySpinner.getValue().toString();.现在解决了这个问题.我希望文本框只接受数字值.(decimal point),也就是说,如果用户尝试输入除了0-9和之外的任何内容.,它不应该在文本框中回显它.
JSpinner mySpinner = new JSpinner();
mySpinner.setModel(new SpinnerNumberModel(default,minimum,maximum,0.1));
mySpinner.setEditor(new JSpinner.NumberEditor(mySpinner,"##.#"));
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗.谢谢 :)
我有一些数学(在C++中)似乎产生了一些非常小的,接近于零的数字(我怀疑trig函数调用是我真正的问题),但是我想检测这些情况以便我可以在更多详情.
我目前正在尝试以下内容,这是正确的吗?
if ( std::abs(x) < DBL_MIN ) {
log_debug("detected small num, %Le, %Le", x, y);
}
Run Code Online (Sandbox Code Playgroud)
其次,数学的本质是三角函数(也就是使用很多弧度/度数转换和sin/ cos/ tan调用等),我可以做些什么样的转换来避免数学错误?
显然,对于乘法我可以使用对数变换 - 还有什么?
看看代码吹响:
#include <complex>
#include <iostream>
int main()
{
std::cout << std::pow( std::complex<double>(0,0), std::complex<double>(0,0) ) << "\n";
std::cout << std::pow( std::complex<double>(0,0), double(0) ) << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
g ++(4.8.1)给出了输出
(nan,nan)
(-nan,-nan)
Run Code Online (Sandbox Code Playgroud)
而clang ++(3.3)给出了一个输出
(-nan,-nan)
(-nan,-nan)
Run Code Online (Sandbox Code Playgroud)
但我期待(1.0,0.0).
任何人都可以解释一下吗?