PHP代码转换成C#!

JiaoPengJay 2011-03-03 10:11:09

function jinzhih_G1($zifu){
$shu= "";
for ($i=0;$i<=strlen($zifu)-1;$i++){
$linshi = substr($zifu,$i,1);
if (ord($linshi)<=57){
$shu=bcadd($shu,bcmul((ord($linshi)-48),bcpow($jinzhi,strlen($zifu)-$i-1)));
}else{
$shu=bcadd($shu,bcmul((ord($linshi)-55),bcpow($jinzhi,strlen($zifu)-$i-1)));
}
}
return $shu;
}


哪位大哥帮我把这段PHP代码转换成C#代码!
感激不尽
...全文
285 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
JiaoPengJay 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 spf19871001 的回复:]
bcadd, bcmul, bcpow这三个貌似C#里面没有,所以干脆都自定义函数实现。

有点错误,思路大概是思路,你要搞清楚$shu是什么类型的数据,$jinzhi你在哪里定义的~~~


C# code

public string jinzhih_G1(string zifun)
{
string shu= "";
string ……
[/Quote]
非常感谢你的回复!我的问题已解决!
spf19871001 2011-03-05
  • 打赏
  • 举报
回复
bcadd, bcmul, bcpow这三个貌似C#里面没有,所以干脆都自定义函数实现。

有点错误,思路大概是思路,你要搞清楚$shu是什么类型的数据,$jinzhi你在哪里定义的~~~


public string jinzhih_G1(string zifun)
{
string shu= "";
string jinzhi = ""; //不知道这个参数干吗用的
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
for (int i = 0; i < zifun.Length; i++)
{
string linshi = zifun.Substring(i, 1);
int a = (int)ascii.GetBytes(linshi)[0];
if (a <= 57)
{
shu += this.myfunc(shu, this.myfunc((a - 48), this.myfunc(jinzhi, zifun.Length - i - 1, 0, 3), 0, 2), 0, 1);
}
else
{
shu += this.myfunc(shu, this.myfunc((a - 55), this.myfunc(jinzhi, zifun.Length - i - 1, 0, 3), 0, 2), 0, 1);
}
}
return shu;
}

/// <summary>
/// C#模拟实现bcadd、bcmul和bcpow这三个PHP函数.
/// </summary>
/// <remarks>
/// 示例:
/// string result = ExecuteNonQuery("1.2345", "5", 3, 2);
/// </remarks>
/// <param name="x">对象x</param>
/// <param name="y">对象y</param>
/// <param name="z">小数点后位数</param>
/// <param name="method">计算方法</param>
/// <returns>返回字符串</returns>
private string myfunc(object x, object y, int z, int method)
{
double a = Convert.ToDouble(x);
double b = Convert.ToDouble(y);
double c = 0;
//通过switch实现bcadd、bcmul和bcpow这三个PHP函数
switch (method)
{
case 1: c = a+b; break;
case 2: c = a * b; break;
case 3: c = Math.Pow(a, b); break;

}
double d = Math.Truncate(c);
string e = Convert.ToString(d) + Convert.ToString(c - d).Substring(1, z+1);
return Convert.ToString(e);
}



强哥83 2011-03-04
  • 打赏
  • 举报
回复
string shu= " ";
shu.Length()
shu.Substring()
Chr()
Ord()
bcadd 没有
public string function bcadd(string left_operand, string right_operand, string scale)
{
int t = Convert.ToSingle(left_operand) + Convert.ToSingle(string right_operand);
result=t.ToString("f"+scale);
}
JiaoPengJay 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vivian_lanlan 的回复:]
[code=C#]
private String jinzhih_G1(zifu){
string shu= " ";
string linshi= " ";
string jinzhi= " ";
for (int i=0;i <=strlen(zifu)-1;i++){
……
[/Quote]
晓静姐,这个一眼就能看出来不对!strlen、ord、bcadd、bcmul......等等这些都是PHP特有的函数,在c#里是没有的!要是有的话我也会的!
不过还是谢谢你的回复!
vivian_lanlan 2011-03-03
  • 打赏
  • 举报
回复

private String jinzhih_G1(zifu){
string shu= "";
string linshi="";
string jinzhi="";
for (int i=0;i<=strlen(zifu)-1;i++){
linshi = substr(zifu,i,1);
if (ord(linshi)<=57){
shu=bcadd(shu,bcmul((ord(linshi)-48),bcpow(jinzhi,strlen(zifu)-i-1)));
}else{
shu=bcadd(shu,bcmul((ord(linshi)-55),bcpow(jinzhi,strlen(zifu)-i-1)));
}
}
return shu;
}

JiaoPengJay 2011-03-03
  • 打赏
  • 举报
回复
没人啊!自己顶上去!
JiaoPengJay 2011-03-03
  • 打赏
  • 举报
回复
还没人啊!高手在哪里?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧