我正在尝试检查用户名字符串是否全是数字(但该字段不是数字字段)。如果是这样,我需要通过添加前导 0 使字符串长度达到 5 个字符。
我有这个代码:
<?php
$getuname = $_GET['un'];
if (mb_strlen($getuname) <= 1){
$getuname = "0".$getuname;
}
if (mb_strlen($getuname) <= 2){
$getuname = "0".$getuname;
}
if (mb_strlen($getuname) <= 3){
$getuname = "0".$getuname;
}
if (mb_strlen($getuname) <= 4){
$getuname = "0".$getuname;
}
echo $getuname;
?>
Run Code Online (Sandbox Code Playgroud)
上面的代码可以通过添加零来确保字符串为 5 个字符,但它不是很漂亮,我确信有更好的方法来做到这一点。任何人?
此外,整个部分需要包含在 IF 语句中,该语句首先检查它是否只包含数字。我尝试使用 !is_numeric,但这似乎不起作用。我假设是因为它不是数字类型字段。
T-SQL 中日期 (@Date) 的以下转换在 SSRS 中的等效表达式是什么?
CONVERT(INT,CONVERT(CHAR,@Date,112))
Run Code Online (Sandbox Code Playgroud)
我需要将日期参数值转换为 YYYYMMDD 格式的整数。
我有以下时间戳向量:
Timestamp <- c("30-09-2016 11:45:00.000", "01-10-2016 06:19:57.860", "01-10-2016 06:20:46.393")
Run Code Online (Sandbox Code Playgroud)
时间戳是包含其他度数和权重列的表的一部分(不幸的是,它似乎不是 data.frame...):
Timestamp Weight Degrees
1 30-09-2016 11:45:00.000 38.19 40.00
2 01-10-2016 06:19:57.860 39.12 40.00
3 01-10-2016 06:20:46.393 42.11 41.00
Run Code Online (Sandbox Code Playgroud)
我想根据时间戳绘制权重,但时间戳的模式是“字符”,这意味着x轴无法正确读取。您有什么建议将其转换为数字吗?
我已经尝试过as.Date(Timestamp,format='%d-%m-%Y %H:%M:%OS3'),但似乎不起作用。
我想修改这里给出的代码:Find min and max elements of array
def minMax(a: Array[Int]) : (Int, Int) = {
if (a.isEmpty) throw new java.lang.UnsupportedOperationException("array is empty")
a.foldLeft((a(0), a(0)))
{ case ((min, max), e) => (math.min(min, e), math.max(max, e))}
}
Run Code Online (Sandbox Code Playgroud)
也可以使用Long, Floatand Double(因为这些是 scala.math.min/max 接受的类型。我试过:
def getMinAndMax[@specialized(Int,Long,Float,Double) T](x: Seq[T]) : (T, T) = {
if (x.isEmpty) throw new java.lang.UnsupportedOperationException("seq is empty")
x.foldLeft((x.head, x.head))
{ case ((min, max), e) => (math.min(min, e), math.max(max, e))}
}
Run Code Online (Sandbox Code Playgroud)
但这也不能编译。有什么建议吗?
语境
对于我的模型,我希望有一个输入,用户可以在其中输入一系列值。
例如
我希望从上面显示的输入中得到一个包含五个数字的列表,例如[0.5 0.2 0 0.2 0.5],这样我就可以使用它们输入的数字进行一些计算。
问题
"0.5 0.2 0 0.2 0.5"不幸的是,如果我将类型设置为字符串,则像上面那样设置输入将会出现错误。如果我将类型设置为数字,则只允许输入单个数字。
那么,如何解析以空格为基础的字符串(即“”)?我也对替代方案持开放态度,尽管我更愿意将其保留在 Netlogo 中(例如,不读取值的文本文件)以使其更容易更改,因为我怀疑它会被经常使用。
我尝试过的
我尝试过使用read-from-string,但它也不喜欢像上面那样输入一系列数字。我还尝试使用explode字符串扩展(https://github.com/NetLogo/String-Extension)中的函数,但我的 Netlogo 版本(6.2.0)不喜欢该扩展中的 API,并且不允许我来使用它。
我对 NetLogo 很陌生,如果我的问题很愚蠢或者我没有说清楚的话,我很抱歉!
我有一个程序,使用相同版本的 Julia 在两台不同的电脑上运行。我不想给出程序的具体片段,因为一方面有点复杂,另一方面,我觉得一定有一些东西取决于机器而不是我的程序本身。
以下是我在两台机器上得到的一些结果:
1 1.0000000000582077 15.124999999941792
2 1.9999999999417923 27.536972172616515
3 3.000000000523869 45.722282028989866
Run Code Online (Sandbox Code Playgroud)
1 1.0 15.125
2 2.0 27.53697217302397
3 3.0 45.722282028466
Run Code Online (Sandbox Code Playgroud)
问题是舍入误差,我不知道它们是在哪一点引入的,导致结果略有不同。它不可能是格式错误(我在两种情况下使用完全相同的程序),也不可能是机器 epsilon 错误(两种情况下的机器 epsilon 都是>2.220446049250313e-16)。
目前我只能认为我使用的额外软件包,SparseArrays或LinearAlgebra正在FFTW引入此人为错误,但我不确定。
编辑:
好吧,这里是一个最小的例子(也许数组不需要像 [a,a] 一样,其中 a 本身就是一个稀疏数组)。我必须修改我的程序才能隔离问题,因此我下面将讨论的结果与我上面写的结果略有不同。然而,两者都显示了我提到的不可忽视的错误。
using LinearAlgebra
using SparseArrays
using FFTW
const Nsites = 10000
function Opbuild1(::Val{true})
Up = spzeros(Complex{Float64}, Nsites, Nsites)
N = div(Nsites,2)
ii = 1
for p in 0:(N-1)
Up[ii,ii] = exp(-1.0im*p^2*0.25)
Up[ii + N, ii + N] = exp(-1.0im*(p …Run Code Online (Sandbox Code Playgroud) 我目前正在使用N0来格式化我的数字.是否有一种格式可用于仅允许正数 - 任何小于0的值都应默认为0?
我是这里的新用户,也是Ruby的初学者.我需要从中消除负值(数字)is_numeric?.所以代码是这样的:
class String
def is_number?
true if Float(self) rescue false
end
end
Run Code Online (Sandbox Code Playgroud)
这给了我正数和负数,而我只需得到正数.有没有办法消除这种方法中的负数?如果没有,那么任何其他方式也被赞赏.